package edu.northwestern.cbits.purple_robot_manager;
import android.app.AlarmManager;
import android.app.IntentService;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.preference.PreferenceManager;
import android.util.Log;
import java.util.Date;
public class HeartbeatService extends IntentService
{
private static final String LAST_FIRE = "HeartbeatService.LAST_FIRE";
private static final long INTERVAL = 10000;
private static int index = 0;
public HeartbeatService()
{
super("HeartbeatService");
}
protected void onHandleIntent(Intent intent)
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
long now = System.currentTimeMillis();
long lastFire = prefs.getLong(HeartbeatService.LAST_FIRE, 0);
if (now - lastFire > HeartbeatService.INTERVAL)
{
Log.e("PW", "HEARTBEAT " + index + " " + (new Date()));
SharedPreferences.Editor e = prefs.edit();
e.putLong(HeartbeatService.LAST_FIRE, now);
e.commit();
AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
PendingIntent pi = PendingIntent.getService(this, 0, new Intent(this, HeartbeatService.class), PendingIntent.FLAG_UPDATE_CURRENT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
alarmManager.setExact(AlarmManager.RTC_WAKEUP, now + HeartbeatService.INTERVAL, pi);
else
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), HeartbeatService.INTERVAL, pi);
Intent sensorIntent = new Intent(this, SensorService.class);
this.startService(sensorIntent);
index += 1;
}
}
}